package com.kason.spi;

import java.util.Iterator;
import java.util.ServiceLoader;

/**
 * @author Kason
 * @date 2020/10/14 10:08
 */
public class KasonSpiTest {

    /**
     * 实现SPI机制的步骤
     * 1.定义一个接口
     * 2.实现接口类
     * 3.在META-INF/services/下，添加接口类的全限定类名文件，内容是实现类的全限定类名，多个用换行
     * 4.ServiceLoader.load 加载
     * @param args
     */
    public static void main(String[] args) {
        ServiceLoader<KasonSpi> serviceLoader = ServiceLoader.load(KasonSpi.class);
        Iterator<KasonSpi> iterator = serviceLoader.iterator();
        while (iterator.hasNext())
        {
            KasonSpi kasonSpi = iterator.next();
            kasonSpi.test();
        }
    }


}
